home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
United Public Domain Gold 4
/
United Public Domain Gold 4.iso
/
fredfish
/
ff.0316.dms
/
ff.0316.adf
/
Life
/
blit.c
< prev
next >
Wrap
C/C++ Source or Header
|
1990-02-06
|
2KB
|
64 lines
/*
* Information gleaned from the Hardware Reference Manual.
*/
#define BLTADD (0xdff040L)
#include "blit.h"
/*
* This structure contains everything we need to know.
* Do not do a structure copy into this! Instead, assign
* each field. The last field assigned must be bltsize; that
* starts up the blitter. Also note that all of these are
* write only, and you can't read them.
*/
struct bltstruct {
short con0 ;
short con1 ;
short afwm ;
short alwm ;
short *csource, *bsource, *asource, *dsource ;
short bltsize ;
short dmy1, dmy2, dmy3 ;
short cmod, bmod, amod, dmod ;
short dmy4, dmy5, dmy6, dmy7 ;
short cdat, bdat, adat ;
} ;
/*
* This is the main blit routine; it takes a structure and
* copies everything to the blitter registers, and starts
* the blit.
*/
blit(p)
register struct blitparam *p ;
{
register struct bltstruct *d ;
d = BLTADD ;
/*
* Wait for the blitter to finish whatever it needs to do.
*/
WaitBlit() ;
/*
* Assign the registers. This code runs very very quickly since
* everything is in registers.
*/
d->con0 = p->con0 ;
d->con1 = p->con1 ;
d->afwm = p->fwm ;
d->alwm = p->lwm ;
d->asource = p->asource ;
d->bsource = p->bsource ;
d->csource = p->csource ;
d->dsource = p->dsource ;
d->amod = p->amod ;
d->bmod = p->bmod ;
d->cmod = p->cmod ;
d->dmod = p->dmod ;
d->adat = p->adat ;
d->bdat = p->bdat ;
d->cdat = p->cdat ;
/*
* This last assignment starts the blitter.
*/
d->bltsize = p->bltsize ;
}